查看原文
其他

华为轻量级网络架构,幽灵网络(GhostNets)再升级——附源码下载

Edison_G 计算机视觉研究院 2023-10-04

关注并星标

从此不迷路

计算机视觉研究院

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

论文地址:https://arxiv.org/pdf/2201.03297.pdf
源代码:https: //github.com/huawei-noah/CV-Backbones

计算机视觉研究院专栏

作者:Edison_G

由于内存和计算资源有限,在移动设备上部署卷积神经网络 (CNN) 很困难。 我们的目标是通过利用特征映射中的冗余,为包括CPU和GPU在内的异构设备设计高效的神经网络,这在神经架构设计中很少被研究。


01

概述


对于类似CPU的设备,研究者提出了一种新颖的CPU高效Ghost(C-Ghost)模块,可以从廉价的操作中生成更多的特征图。基于一组内在特征图,应用一系列成本低廉的线性变换来生成许多ghost特征图,这些特征图可以充分揭示内在特征的信息。所提出的C-Ghost模块可以作为一个即插即用的组件来升级现有的卷积神经网络。

C-Ghost瓶颈旨在堆叠C-Ghost模块,然后可以轻松建立轻量级C-GhostNet。研究者进一步考虑了GPU设备的高效网络。在构建阶段不涉及过多的GPU低效操作(例如:深度卷积),研究者建议利用阶段特征冗余来制定GPU高效的Ghost(G-Ghost)阶段结构。一个阶段中的特征分为两部分,第一部分使用具有较少输出通道的原始块处理以生成内在特征,另一部分是通过利用阶段冗余使用廉价操作生成的。

在基准上进行的实验证明了所提出的C-Ghost模块和G-Ghost阶段的有效性。C-GhostNet和G-GhostNet可以分别实现CPU和GPU的精度和延迟的最佳权衡。


02

背景及回顾


在去年我们“计算机视觉研究院”第一时间分享了GhostNet,并且应用到了检测领域。具体的见下链接:
"幽灵网络" | 华为高效轻量级网络(附源码链接)
高效的神经结构设计具有很高的潜力,可以建立高效的深度网络,参数和计算较少,最近取得了相当大的成功。这种方法还可以为自动搜索方法提供新的搜索单元。例如,MobileNet利用深度卷积和点卷积构造了一个单元,用于用较大的滤波器逼近原始卷积层,并取得了类似的性能。ShuffleNet进一步探索了一种通道shuffle操作(这个不是很好翻译,但是通过具体操作可以理解),以提高轻量级模型的性能。 

之前就介绍了这种新的Ghost模块,通过使用较少的参数来生成更多的特征。具体来说,深度神经网络中的一个普通卷积层将被分成两部分。第一部分涉及普通卷积,但它们的总数将受到严格控制。给定第一部分的固有特征映射,然后应用一系列简单的线性操作来生成更多的特征映射。在不改变输出特征映射大小的情况下,与vanilla卷积神经网络相比,该Ghost模块中所需的参数总数和计算复杂性都有所降低。基于Ghost模块,建立了一种高效的神经网络架构,即GhostNet。 作者首先在基准神经架构中替换原始卷积层,以证明Ghost模块的有效性,然后验证GhostNet在几个基准视觉数据集上的优越性。实验结果表明,所提出的Ghost模块能够降低通用卷积层的计算成本,同时保持相似的识别性能,并且GhostNet可以在移动设备上具有快速推理的各种任务上超越最先进的有效深度模型,如MobileNetV3。
GhostNet优化
目标是为包括CPU和GPU在内的异构设备设计高效的神经网络。对于CPU设备,引入了一种新颖的CPU高效Ghost (C-Ghost) 模块,以使用更少的参数生成更多特征。具体来说,深度神经网络中的普通卷积层将被分成两部分。第一部分涉及普通卷积,但它们的总数将受到严格控制。给定第一部分的内在特征图,然后应用一系列简单的线性运算来生成更多特征图。在不改变输出特征图大小的情况下,与那些C-Ghost模块相比,该C-Ghost模块中所需的总体参数数量和计算复杂度已减少。

03

新框架

CPU-Efficient GhostNet

具体的详细解释可见之前发布的《"幽灵网络" | 华为高效轻量级网络(附源码链接)》,今天主要重点说说优化的部分。
GPU-Efficient GhostNet
尽管C-GhostNets可以在保持高性能的同时节省FLOP,但用于生成更多特征的廉价操作在GPU上仍然不是很简便和高效。具体来说,深度卷积通常具有较低的算术强度,即计算与内存操作的比率,无法充分利用并行计算能力。如何在准确率和GPU延迟之间取得更好的折衷的CNN仍然是一个被忽视的问题。
除了FLOPs和参数数量,Radosavovic【Designing network design spaces】引入激活来测量网络的复杂性,即所有卷积层的输出张量的大小。GPU上的延迟更多地与激活有关,而不是FLOP,也就是说,如果可以去除部分特征图并减少激活,可以很大概率地减少GPU上的延迟。另一方面,CNN的主体通常由分辨率逐渐降低的几个阶段组成,每个阶段由一堆块组成。研究者不是在以前的工作中研究逐块增强【Squeezenet: Alexnet-level accuracy with 50x fewer parameters and 0.5 mb model size】,研究者的目标是减少阶段冗余,这可以大大减少中间特征,从而减少相关的计算成本和内存使用。

ResNet34的第二阶段中的第一个块和最后一个块的特征图


所提出的G-Ghost阶段通过利用第一个块和最后一个块之间的冗余来生成具有廉价操作的部分特征。这样与普通CNN阶段相比,计算成本可以大大降低(如下图 (a))。

虽然简单的特征可以通过廉价的操作来近似生成,但方程中的Y可能缺乏需要多层提取的深度信息。为了补充缺乏的信息,研究者建议利用复杂路径中的中间特征来增强廉价操作的表示能力。

将中间信息聚合成幽灵特征的混合操作,如下:


04

实验

© THE END 

转载请联系本公众号获得授权


计算机视觉研究院学习群等你加入!


我们开创“计算机视觉协会”知识星球两年有余,也得到很多同学的认可,最近我们又开启了知识星球的运营。我们定时会推送实践型内容与大家分享,在星球里的同学可以随时提问,随时提需求,我们都会及时给予回复及给出对应的答复。

ABOUT

计算机视觉研究院


计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!


VX:2311123606



往期推荐 

🔗

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存